export default {
  // 开启命名空间
  namespaced: true,

  // state 数据
  state: () => ({
    //  读取本地的tabBarList数据，初始化 tabBarList 对象
    tabBarList:JSON.parse(uni.getStorageSync('tabBarList') || '{}'),
    tabBarIndex:JSON.parse(uni.getStorageSync('tabBarIndex') || 0),
  }),

  // 方法
  mutations: {
    // 更新收货地址
    updateTabBarList(state, tabBarList) {
      state.tabBarList = tabBarList
      
      // 通过 this.commit() 方法，调用 m_tabbar 模块下的 saveTabBarListToStorage 方法将 tabBarList 对象持久化存储到本地
      this.commit('m_tabbar/saveTabBarListToStorage')
    },
    updateTabBarIndex(state, tabBarIndex) {
      state.tabBarIndex = tabBarIndex
      
      // 通过 this.commit() 方法，调用 m_tabbar 模块下的 saveTabBarListToStorage 方法将 tabBarList 对象持久化存储到本地
      this.commit('m_tabbar/saveTabBarIndexToStorage')
    },
    //  定义将 tabBarList 持久化存储到本地 mutations 方法
    saveTabBarListToStorage(state) {
      uni.setStorageSync('tabBarList', JSON.stringify(state.tabBarList))
    },
    //  定义将 TabBarIndex 持久化存储到本地 mutations 方法
    saveTabBarIndexToStorage(state) {
      uni.setStorageSync('tabBarIndex', JSON.stringify(state.tabBarIndex))
    },
  },

  // 数据包装器
  getters: {
    // 收货详细地址的计算属性
    addstr(state) {
      if (!state.address.provinceName) return ''
        
      // 拼接 省，市，区，详细地址 的字符串并返回给用户
      return state.address.provinceName + state.address.cityName + state.address.countyName + state.address.detailInfo
    }
  },
}